A web application is an application that is accessed over a network, such as the Internet, to be executed at a client computer system. A web application may have various forms, such being a Java applet, being coded in a browser-supported language (such as JavaScript, and combined with a browser-rendered markup language such HTML (hypertext markup language)), or having other form. A web browser may be used to retrieve a web application from an application server, and to execute the web application at the client computer system by rendering the retrieved web application code.
Web applications are becoming more common due to the widespread availability of web browsers. Furthermore, web applications are advantageous as they may be maintained and updated at an application server rather than individually at numerous client computers. Numerous types of web applications exist, including media players, webmail, online retail sales, online auctions, wikis, and many other types. The term “Web 2.0” is commonly associated with web applications that facilitate interactive information sharing, interoperability, user-centered design, and collaboration on the World Wide Web. A Web 2.0 website allows its users to interact with each other as contributors to the website's content, in contrast to websites where users are limited to the passive viewing of information that is provided to them.
As more organizations begin to develop web applications that utilize Web 2.0 technologies to create richer and more complex interactions, the ability to effectively monitor web application performance and availability is becoming more important. Conventional approaches to determining web application performance typically involves performing test transfers of web application content (“synthetic transactions”) at regular intervals, or capturing metrics based on server side operations. However, neither synthetic transactions nor capturing server side metrics indicates a quality of the end user's experience at the client computer system. Simply measuring whether a page was delivered to a client correctly and within acceptable response times does not accurately indicate whether the web application was available and performed well from the standpoint of the end user at the client. Technologies such as AJAX (asynchronous JavaScript and XML (extensible markup language)), Adobe® Flash®, developed by Adobe Systems of San Jose, Calif., and Microsoft® Silverlight™, developed by Microsoft Corporation of Redmond, Wash., may use client side processing to control complex interactions of web applications. However, such client side processing cannot be directly monitored at the server, and thus the performance of such client side processing is not determinable using conventional approaches.